首页>代码>基于SpringBoot+Vue实现的学生选课管理系统>/源代码/CourseManager/CourseManagerApi - idea/src/main/java/com/rabbiter/cm/config/aop/ControllerLogAspect.java
//package com.rainng.coursesystem.config.aop;
//
//import com.rainng.coursesystem.dao.mongo.LogDAO;
//import com.rainng.coursesystem.manager.LoginStatusManager;
//import com.rainng.coursesystem.model.bo.LoginStatusBO;
//import com.rainng.coursesystem.model.constant.HttpStatusCode;
//import com.rainng.coursesystem.model.entity.mongo.LogEntity;
//import com.rainng.coursesystem.model.vo.response.ResultVO;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.Around;
//import org.aspectj.lang.annotation.Aspect;
//import org.aspectj.lang.annotation.Pointcut;
//import org.aspectj.lang.reflect.MethodSignature;
//import org.springframework.stereotype.Component;
//import org.springframework.web.context.request.RequestContextHolder;
//import org.springframework.web.context.request.ServletRequestAttributes;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//@Aspect
//@Component
//public class ControllerLogAspect {
//    private static final String PACKAGE_PREFIX = "com.rainng.coursesystem.controller.";
//    private static final String PACKAGE_PREFIX2 = "com.rainng.coursesystem.config.handler.BindExceptionHandler.";
//    private static final String CONTROLLER_POSTFIX = "Controller.";
//
//    private final LoginStatusManager loginStatusManager;
//    private final LogDAO logDAO;
//
//    public ControllerLogAspect(LoginStatusManager loginStatusManager, LogDAO logDAO) {
//        this.loginStatusManager = loginStatusManager;
//        this.logDAO = logDAO;
//    }
//
//    @Pointcut("execution(public * com.rainng.coursesystem.controller..*.*(..)) || " +
//            "execution(public * com.rainng.coursesystem.config.handler.BindExceptionHandler.handleBindException(..))")
//    public void controllerLog() {
//    }
//
//    @Around("controllerLog()")
//    public Object around(ProceedingJoinPoint joinPoint) {
//        long startTime = System.currentTimeMillis();
//
//        LogEntity log = new LogEntity();
//        logRequest(log, joinPoint);
//
//        Object result = null;
//        try {
//            result = joinPoint.proceed();
//        } catch (Throwable ex) {
//            ex.printStackTrace();
//            log.setException(ex.getMessage());
//            setResponseCode(HttpStatusCode.INTERNAL_SERVER_ERROR);
//            result = new ResultVO(ResultVO.SERVER_ERROR, "未知错误", null);
//        }
//
//        logResult(log, result, System.currentTimeMillis() - startTime);
//        logDAO.insert(log);
//
//        return result;
//    }
//
//    private void logRequest(LogEntity logEntity, ProceedingJoinPoint joinPoint) {
//        HttpServletRequest request = getRequest();
//        if (request != null) {
//            LoginStatusBO loginStatus = loginStatusManager.getLoginStatus(request.getSession());
//            String requestUrl = request.getRequestURI();
//            if (request.getQueryString() != null) {
//                requestUrl += "?" + request.getQueryString();
//            }
//
//            logEntity.setRequestUrl(requestUrl);
//            logEntity.setUserId(loginStatus.getUserId());
//            logEntity.setUserType(loginStatus.getUserType());
//        }
//
//        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
//        String businessTarget = signature.getDeclaringTypeName() + "." + signature.getMethod().getName();
//        businessTarget = businessTarget
//                .replace(PACKAGE_PREFIX, "")
//                .replace(CONTROLLER_POSTFIX, ".")
//                .replace(PACKAGE_PREFIX2, "");
//        logEntity.setBusinessTarget(businessTarget);
//    }
//
//    private void logResult(LogEntity log, Object result, long executeTime) {
//        if (!(result instanceof ResultVO)) {
//            return;
//        }
//
//        ResultVO resultVO = (ResultVO) result;
//        log.setResultCode(resultVO.getCode());
//        log.setMessage(resultVO.getMessage());
//        log.setExecuteTime(executeTime);
//    }
//
//    private HttpServletRequest getRequest() {
//        ServletRequestAttributes attributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());
//        if (attributes == null) {
//            return null;
//        }
//
//        return attributes.getRequest();
//    }
//
//    private void setResponseCode(int statusCode) {
//        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        if (requestAttributes == null) {
//            return;
//        }
//        HttpServletResponse response = requestAttributes.getResponse();
//        if (response == null) {
//            return;
//        }
//
//        response.setStatus(statusCode);
//    }
//}
最近下载更多
Boss绝  LV9 5月5日
wanglinddad  LV54 4月4日
dapeng0011  LV13 4月2日
嘛花藤  LV5 4月2日
xiaozhi丶  LV14 3月25日
最代码官方  LV167 3月24日
最近浏览更多
JQY123  LV3 5月5日
Ctrlwin95 5月5日
暂无贡献等级
Boss绝  LV9 5月5日
小陈码代码 4月28日
暂无贡献等级
流连瓦盖法  LV7 4月27日
freedom66  LV2 4月21日
1230123  LV1 4月21日
2716804680  LV9 4月20日
saaaaaa  LV14 4月16日
double green 4月13日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友